package com.reebake.ideal.user.entity;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

 /**
 * 用户信息
 * 
 */
@Schema(name = "用户信息", description = "")
@TableName("idl_user_info")
@Data
public class UserInfo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /** 用户编号 */
    @Schema(name = "用户编号", description = "")
    @TableId
    private String userId;

    /** 电话号码 */
    @Schema(name = "电话号码", description = "")
    private String phoneNumber;

    /** 电话号码状态 */
    @Schema(name = "电话号码状态", description = "")
    private String phoneNumberStatus;

    /** 昵称 */
    @Schema(name = "昵称", description = "")
    private String nickname;

    /** 性别 */
    @Schema(name = "性别", description = "")
    private String gender;

    /** 出生日期 */
    @Schema(name = "出生日期", description = "")
    private String birthday;

    /** 电子邮箱 */
    @Schema(name = "电子邮箱", description = "")
    private String email;

    /** 电子邮箱状态 */
    @Schema(name = "电子邮箱状态", description = "")
    private String emailStatus;

    /** 头像 */
    @Schema(name = "头像", description = "")
    private String avatar;

    /** 注册时间 */
    @Schema(name = "注册时间", description = "")
    private Date registerTime;

    /** 国家 */
    @Schema(name = "国家", description = "")
    private String country;

    /** 语言 */
    @Schema(name = "语言", description = "")
    private String locale;

    /** 描述 */
    @Schema(name = "描述", description = "")
    private String description;

    /** 用户状态 */
    @Schema(name = "用户状态", description = "")
    private String userStatus;

    /** 备注 */
    @Schema(name = "备注", description = "")
    private String remark;

    /** 删除标记 */
    @Schema(name = "删除标记", description = "")
    @TableLogic
    private Boolean deleteFlag;

    /** 租户号 */
    @Schema(name = "租户号", description = "")
    private String tenantId;

    /** 乐观锁 */
    @Schema(name = "乐观锁", description = "")
    private Integer revision;

    /** 创建人 */
    @Schema(name = "创建人", description = "")
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @Schema(name = "创建时间", description = "")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;

    /** 更新人 */
    @Schema(name = "更新人", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @Schema(name = "更新时间", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

}